import {Prefab, Node, instantiate} from 'cc';
import {CombinationHandler} from "db://assets/Scripts/MVC/Monster/CombinationHandler";
import {PoolManager} from "db://assets/Scripts/framework/PoolManager";

/**
 * 五个敌人策略，一字型
 */
export class FivePolicy implements CombinationHandler {

    /**
     * 五个敌人
     *
     * @param prefab 预制体
     * @param parent 父节点
     */
    combination(prefab: Prefab, parent: Node): Node[] {
        // 创建列表
        const monsterNodes: Node[] = [];

        // 敌人之间的间距
        let spacing = -4;
        // 创建敌人
        for (let i = 0; i < 5; i++) {
            // 实例化敌人节点
            let monsterNode = PoolManager.getInstance().getNode(prefab, parent);
            // 设置父节点
            monsterNode.setParent(parent);
            // 设置位置
            monsterNode.setPosition(spacing, 0, -10);
            // 添加至列表
            monsterNodes.push(monsterNode);
            // 调整间距
            spacing += 2;
        }

        // 返回列表
        return monsterNodes;
    }
}